package com.jt.controller;

import com.jt.service.FileService;
import com.jt.vo.ImageVO;
import com.jt.vo.SysResult;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.nio.file.Files;

@RestController
@CrossOrigin
@RequestMapping("/file")
public class FileController {
    @Autowired
    private FileService fileService;
    /**
     * 文件上传
     * url:/file/upload
     * 参数名：file 二进制字节信息
     * 返回值：SysResult(imageVO)
     * 步骤：
     *      1.获取文件名称
     *      2.指定具体上传的路径
     *      3.拼接文件的全路径
     *      4.实现上传
     */
    @PostMapping("/upload")
    public SysResult upload (MultipartFile file) throws IOException {
////        1.获取文件名称
//        String filename =file.getOriginalFilename();
////        2.定义上传路径 绝对路径
//        String fileDir ="C:/Users/tarena/Pictures";
//        File dirFile = new File(fileDir);
//        if(!dirFile.exists()){
////            如果文件不存在，创建一个新的目录
//            dirFile.mkdirs();
//        }
////        指定文件上传的全路径：目录/文件名
//        String filePath = fileDir+"/"+filename;
//        file.transferTo(new File(filePath));
        ImageVO imageVO = fileService.upLoad(file);
//        输入imageVO为null，说明文件上传失败
        if (imageVO==null){
            return SysResult.fail();
        }
        return SysResult.success(imageVO);
    }
    /**
     * 实现文件删除
     * url:/file/deleteFile
     * 参数：virtualPath
     * 返回值：SysResult对象
     */
    @DeleteMapping("deleteFile")
    public SysResult deleteFile(String virtualPath){
        File file = new File(virtualPath);
        file.delete();//删除指定文件
        return SysResult.success();
    }
}
